package com.study.common.BaseDao;

import org.springframework.stereotype.Component;

import java.io.Serializable;
import java.util.List;

/**
 * @Create by ldr.
 * @create 2018-08-28 9:39
 * @Description：dao基类
 */
public interface BaseDao {

    /**
     * 添加
     */
    void add(Object obj);

    /**
     * 删除
     */
    void delete(Object obj);

    /**
     * 更新
     */
    void update(Object obj);

    /**
     * 根据id查询
     */
    Object findById(Class clazz, Serializable id);

    /**
     * deleteById方法的作用是根据主键删除对应的记录
     * @param clazz 要删除记录的数据库表映射类
     * @param id 要删除的记录的主键值
     */
     void deleteById(Class clazz, Serializable id);

     /**
      * description: 根据HQL语句进行唯一结果集的查询
      * @params hql语句 参数集合
      * @return 唯一结果集
      */
     Object queryUniqueByHql(String hql, List paramList);
}
